A modem is an interface device coupled to a data terminal and a telephone line. The data terminal may be a computer, a "dumb" terminal incapable of processing software or a facsimile machine. The modem permits the exchange of digital data with remote modem-supported data terminals over the telephone line by providing an interface function between each terminal and the telephone network. The modem is typically plugged into a telephone jack connected to a telephone line and is positioned inside or adjacent to the associated data terminal. To support transmission of digital computer data to a remote data terminal, the modem transforms the digital data from the local data terminal into analog form necessary for telephone line transmission. On the receiving end, a second modem transforms received analog signals into digital data which is provided to its local data terminal.
The four major sections of a typical modem are the telephone interface, data terminal interface, controller, and datapump. The telephone interface connects the telephone line to the modem and optionally to a local communications device such as a telephone or an answering machine. The telephone interface typically includes ring-detect circuitry which sends digital information to the controller and a data access arrangement for transmitting analog information between the telephone line and the modem's datapump. The data terminal interface links the modem to the local data terminal and is typically a serial interface for an external modem and a parallel interface for a modem that goes inside a computer.
The controller executes a program for directing the functions of the modem. The controller may compress data coming from the data terminal interface before sending it to the datapump and may decompress data coming from the datapump before sending it to the data terminal interface. Also, it is through commands to and responses from the controller that the data terminal has access to the configurational features of the modem. The datapump section is typically configured by the controller to process data between analog and digital signals in accordance with a data protocol.
The datapump may convert digital data from the data terminal interface to analog signals sent through the telephone line interface to the telephone line, or convert analog signals received from the telephone line via the telephone line interface to digital data transmitted through the data terminal interface or stored in the datapump or controller, or simultaneously do both types of conversion in a "full duplex" mode. A datapump may be, for example, capable of being configured to process data in accordance with a facsimile protocol or a data protocol. Note that although the term "modem" originates from modulator-demodulator, it is applied to characterize telephone line interface devices, such as a voice modem, in which modulation is not required. As such, the datapump may also be capable of being configured to process data in accordance with a voice protocol. The datapump's facsimile, data, and voice protocols may be set to varying speeds and modes.
When a remote modem is directed to communicate with a local modem connected to a data terminal, the remote modem dials the directory number of the local modem. The telephone network provides a ring signal to the local modem corresponding to an incoming telephone call. The local modem senses the ring signal and answers the incoming telephone call such that a data link is established between the two modems over the telephone line. Before the local modem's datapump is able to process data, the local datapump must be configured to the data protocol of the remote modem's datapump. To that end, the local modem typically engages in a negotiation or handshaking process with the remote modem to determine the appropriate data protocol and for configuring the local modem's datapump accordingly. For a modem to be configured as a data modem, data negotiation may also specify that the controller enter a compression and/or error-checking protocol, such as MNP5 or V.42bis. After the handshaking process has been completed, the local modem's datapump processes data according to the data protocol. However, the handshaking process is often time-consuming. For example, handshaking can often last 12 to 15 seconds for some high-speed modems.
Another problem is that while handshaking is standardized for two data-only modems communicating with each other or two fax-only modems communicating with each other, there is no standardized handshaking for modems capable of processing two or more communication modes including data, fax, and voice, such as fax and data, or fax and data and voice. This can further delay or even prevent establishment of the proper communication mode, and result in less reliable establishment of the proper mode. In addition, some approaches require additional hardware, such as touchtone decoders in the modem and touchtone generators in the calling equipment, and may require that a local or remote user interact with establishment of the proper communication mode.